/*
	File:		MainMenuState.h
	Course:		SGD 1209
	Author:		kDecker
	Purpose:	Handle main menu logic
*/

#pragma once
#include "MenuState.h"
#include "Entity.h"

class CSGD_Direct3D;
class CSGD_DirectInput;
class CSGD_TextureManager;
class CSGD_XAudio2;
class IGameState;
class CBitmapFont;


class CMainMenuState :
	public MenuState
{
public:
	//SINGLETON
	static CMainMenuState * GetInstance();

private:
	CMainMenuState(void);
	CMainMenuState(const CMainMenuState&);
	CMainMenuState& operator=(const CMainMenuState&);
	virtual ~CMainMenuState(void);

	//IGameState Interface
	virtual void Enter(void);	//Load Resources
	virtual void Exit();		//Unload Resources
	virtual bool Input();		//Handle Input
	virtual void Update(float fElapsedTime);		//Update game tokens
	virtual void Render();		//Render game tokens

	//SGD Wrappers
	CSGD_Direct3D		* m_pD3D;
	CSGD_DirectInput	* m_pDI;
	CSGD_TextureManager	* m_pTM;
	CSGD_XAudio2		* m_pXA;

	CBitmapFont*			m_pBF;

	int						choice;

	int						m_nPointerImgID;

	//Game Logic
};

